/*
 * CFileReader.h
 *
 *  Created on: 04.12.2012
 *      Author: caffeine
 */

#ifndef __CFILEREADER_H__
#define __CFILEREADER_H__

#include <lampe/types.h>
#include <lampe/stream/IPacketReader.h>
#include <lampe/io/IFileReader.h>
#include <stdio.h>

namespace lampe{
namespace io{
/**
* CFileReader
* класс, реализующий чтение из файла
*/
class CFileReader: public IFileReader{
private:
	FILE*pointer;
public:
	virtual u32 read(void* buffer, u32 size);
	void position(u32 position);
	virtual u32 size();
	virtual u32 position();
	virtual bool eof();

	/**
	 * Конструктор.
	 * @param path путь к файлу
	 */
	CFileReader(boost::filesystem::path path);
	virtual ~CFileReader();
};

extern IFileReader*createFileReader(boost::filesystem::path fileName);
extern String readTextFromFile(boost::filesystem::path fileName);

}//namespace io
}//namespace lampe
#endif /* CFILEREADER_H_ */
